class myJSON {
  //JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
  static stringify(value) {
    // console.log(typeof (value));
    var type = typeof value
    if ("undefined" === type) {
      return undefined
    }
    if ("function" === type) {
      return undefined
    }
    if ("number" === type) {
      return "" + value + ""
    }
    if ("boolean" === type) {
      return "" + value + ""
    }
    if ("string" === type) {
      return "" + value + ""
    }
    if ("object" === type) {
      // 检查值是否为Array
      if (value instanceof Array) {
        return "[" + value.map(myJSON.stringify) + "]" // 递归调用stringify函数
      } else {
        // console.log(typeof Object.keys(value));
        // console.log(typeof Object.keys(value));
        // console.log(Object.values(value));
        // console.log(typeof Object.values(value));
        // console.log(Object.keys(value).map(JSON.stringify));
        try {
          return (
            "{" +
            Object.keys(value).map(function (key) {
              // console.log("values " + value[key]);
              if (value[key] === null) {
                return '"' + key + '":' + value[key]
              } else {
                let result = myJSON.stringify(value[key])
                return '"' + key + '":"' + myJSON.stringify(value[key])+'"'
              }
            }) +
            "}"
          )
        } catch (error) {
          return "null"
        }
      }
    }
    return null
  }
  //JSON.parse() 方法将数据转换为 JavaScript对象。
  static parse(str) {
    // 判断str数据类型
    // 如果是boolean
    if (typeof str == "boolean") {
      if (str) return true;
      else return false;
    }
    // 如果为null
    if (str == null) return null;
    // 如果未number
    if(typeof str=="number"){
      return str*1
    }
    let str1 = str.replace(/\s*/g, "");
    let str2 = str1.slice(1, -1);
    let arr1 = str2.split(",");
    let arr2 = [];
    let obj = {};
    for (let i = 0; i < arr1.length; i++) {
      arr2.push(arr1[i].split(":"));
    }
    for (let i = 0; i < arr2.length; i++) {
      arr2[i][0] = arr2[i][0].slice(1, -1);
      arr2[i][1] = arr2[i][1].slice(1, -1);
      obj[arr2[i][0]] = arr2[i][1];
    }
    return obj;
  }
}

function btn() {}
export { myJSON }
